Exception guarantees

Exception guarantees, also known as the Abrahams guarantees after David Abrahams, who formalized the guidelines,[1][2] are a set of contractual guidelines that class library implementors and clients use when reasoning about exception safety in C++ programs.

The rules apply to class implementations (components) in the presence of exceptions; they are as follows (in decreasing order of safety):

Code that doesn't follow at least one of the above rules is called exception unsafe.

References